//namespace N {
//   int i;
//   int g(int a) { return a; }
//   int j();
//   void q();
//}
//namespace { int l=1; }
//// the potential scope of l is from its point of declaration
//// to the end of the translation unit
//namespace N {
//   // overloads N::g(int)
//   int g(char a)
//   {
//      // l is from unnamed namespace
//      return l+a;
//   }
//   // OK: duplicate function declaration
//   int j();
//   // OK: definition of N::j()
//   int j()
//   {
//      // calls N::g(int)
//      return g(i);
//   }
//}
//
   int j()
   {
      // calls N::g(int)
      return g(i);
   }
